package com.dlc.shop.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dlc.shop.bean.model.NotifyLog;
import com.dlc.shop.bean.param.OrderParam;
import com.dlc.shop.common.util.PageParam;

import java.util.List;

/**
 *
 *
 * @author lhd
 * @date 2020-07-01 15:44:27
 */
public interface NotifyLogService extends IService<NotifyLog> {

    /**
     * 分页获取消息日志
     * @param page 分页参数
     * @param orderParam 订单参数
     * @return 消息日志分页数据
     */
    IPage<NotifyLog> pageByParam(PageParam<NotifyLog> page, OrderParam orderParam);

    /**
     * 根据订单号查询是否发送过催付消息
     * @param orderNumber 订单号
     * @return 催付消息数
     */
    Integer countMsgNum(String orderNumber);

    /**
     * 推送消息
     * @param logList 消息列表
     */
    void sendMessage(NotifyLog logList);

    /**
     * 获取还未发送的消息列表
     * @return 消息列表
     */
    List<NotifyLog> listUnSendMsgList();

    /**
     * 根据用户id查询未读客服消息数
     * @param userId
     * @return 未读消息数
     */
    Long countUnreadMsg(String userId);

    /**
     * 根据消息参数分页查询消息日志
     * @param page
     * @param notifyLog
     * @return
     */
    IPage<NotifyLog> pageByNotifyLogParam(PageParam<NotifyLog> page, NotifyLog notifyLog);

    /**
     * 全部标为已读
     * @param shopId
     */
    void isReadByShopId(Long shopId);

    /**
     * 消息批量设置已读
     * @param logIds
     */
    void isReadByIds(List<Long> logIds);
}
